import Vue from 'vue'
import { mapState , mapActions } from 'vuex'
import $C from '@/http/config'

import { uploadFileHead } from '@/http/api'

Vue.mixin({
	data() {
		return {
			// 页面请求状态
			pageShow:true,
			// 笔记列表分页
			noteListPage:{},
			// 当前页
			curPage:1,
			list_status:'loadmore'
		}
	},
	// 自定义属性
	computed: {
		// 导入Vuex的自定义属性
		...mapState({
			// 用户信息
			userinfo:state=>state.userinfo,
			// 配置文件
			appConfig:state=>state.Config
		}),
		// 配置文件
		configApp(){
			return $C;
		},
		// 获取可用高度
		getNavigationBar(){
			return uni.getSystemInfoSync().statusBarHeight;
		},
		// 获取可用高度
		getHeight(){
			return `height:${uni.getSystemInfoSync().windowHeight}px`;
		},
		// 获取可用高度
		getMinHeight(){
			return `min-height:${uni.getSystemInfoSync().windowHeight}px`;
		}
	},
	mounted(){
		// #ifdef MP
		wx.hideShareMenu()
		// #endif
	},
	methods: {
		...mapActions(['setUserInfo','logout']),
		// 投机取巧
		deepClone2(obj){
		    return JSON.parse(JSON.stringify(obj))
		},
		// 页面跳转
		pageGo(url){
			// 检查用户是否登录
			if(this.userinfo.token){
				// 已登录 跳转至目标
				uni.navigateTo({
					url:url
				})
			}else{
				// 未登录 跳转至登录
				uni.navigateTo({
					url:'/pages/home/login'
				})
			}
		},
		// 复制到剪切板
		copy(text){
			uni.setClipboardData({data: text});
		},
		// 处理请求状态
		getStatus(res){
			// 判断当前页码是否小于服务器的总页码
			if(this.curPage < res.data.page.sum){
				// 条件成立 页码+1 用于下一次请求服务器页数+1
				this.curPage++
				// 请求状态设置为可请求状态
				this.list_status = 'loadmore';
			}else{
				// 条件不成立 请求状态设置为没有更多数据
				this.list_status = 'nomore';
			}
		},
		// 上传头像
		async uploadFileHead(url,data={}) {
			let res = await uploadFileHead(data,url);
			return res;
		},
		// 根据逗号转数组
		getTags(text){
			if(text.length){
				return text.split(',')
			}else{
				return [];
			}
		}
	}
})
